package com.cvpoc.struts.action;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.cvpoc.dto.FormationProfessionnelleDTO;
import com.cvpoc.exception.BusinessException;
import com.cvpoc.service.FormationProfessionnelleService;
import com.cvpoc.struts.form.FormationProfessionnelleForm;

public class FormationProfessionnelleAction extends DispatchAction {
	private FormationProfessionnelleService service;

	public void setService(FormationProfessionnelleService service) {
		this.service = service;
	}

	public ActionForward consulterFormationProfessionnelle(
			ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		try {
			List<FormationProfessionnelleDTO> formationProfessionnelleDTOs = service
					.findListFormationProfessionnelleByIdCollaborateur(1);
			request.getSession().setAttribute("listFormationProfessionnelle",
					formationProfessionnelleDTOs);
		} catch (BusinessException e) {
			return mapping.findForward("failure");
		}

		return mapping.findForward("succes");
	}

	public ActionForward afficherFormFormationProfessionnelle(
			ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		FormationProfessionnelleForm formationProfessionnelleForm = (FormationProfessionnelleForm) form;
		SimpleDateFormat formatter = new SimpleDateFormat("MM/yyyy");
		formationProfessionnelleForm.setDateDebut(formatter.format(new Date()));
		return mapping.findForward("ajout");
	}

	@SuppressWarnings("unchecked")
	public ActionForward ajouterFormationProfessionnelle(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		FormationProfessionnelleForm formationProfessionnelleForm = (FormationProfessionnelleForm) form;
		FormationProfessionnelleDTO formationProfessionnelleDTO = new FormationProfessionnelleDTO(
				new Date(), Integer.parseInt(formationProfessionnelleForm
						.getDuree()), formationProfessionnelleForm.getLibelle());
		formationProfessionnelleDTO.setId_collaborateur(1);
		formationProfessionnelleDTO.setId(service
				.createFormationProfessionnelle(formationProfessionnelleDTO));
		List<FormationProfessionnelleDTO> formationProfessionnelleDTOs = (List<FormationProfessionnelleDTO>) request
				.getSession().getAttribute("listFormationProfessionnelle");
		formationProfessionnelleDTOs.add(formationProfessionnelleDTO);
		request.getSession().setAttribute("listFormationProfessionnelle",
				formationProfessionnelleDTOs);
		return mapping.findForward("succes");
	}
}
